/**
 *
 * @description: 评论
 * @author: junyong.hong
 * @createTime: 2019/3/13
 * @version: 1.0.0.0
 * @history:
 *    1、
 *    2、
 *
 * 1.Schema Comment设计
 * 2.实现controller
 * 3、增加对应的路由
 * 4.增加评论的表单以及展现评论列表
 */
const mongoose = require('mongoose')
const Schema = mongoose.Schema
const ObjectId = Schema.Types.ObjectId

const CommentSchema = new Schema({
    // 对哪一部电影进行评论
    movie: {
        type: ObjectId,
        // 指向电影model
        ref: 'Movie'
    },
    // 评论人（来自于谁的评论）
    from: {
        type: ObjectId,
        // 指向用户model
        ref: 'User'
    },
    // 评论的内容
    content: String,
    // 回复（对某个评论者进行回复）
    replies: [
        {
            // 来源于谁
            from: {
                type: ObjectId,
                // 指向用户model
                ref: 'User'
            },
            // 对谁进行回复
            to: {
                type: ObjectId,
                // 指向用户model
                ref: 'User'
            },
            content: String
        }
    ],
    meta: {
        createdAt: {
            type: Date,
            default: Date.now()
        },
        updatedAt: {
            type: Date,
            default: Date.now()
        }
    }
})

CommentSchema.pre('save', function (next) {
    // 如果是新增的
    if (this.isNew) {
        this.meta.createdAt = this.meta.updatedAt = Date.now()
    } else {
        this.meta.updatedAt = Date.now()
    }

    next()
})

const Comment = mongoose.model('Comment', CommentSchema)